diff options
-rw-r--r-- | CMakeLists.txt | 17 | ||||
-rw-r--r-- | src/audio_core/renderer/performance/detail_aspect.h | 1 | ||||
-rw-r--r-- | src/audio_core/renderer/performance/entry_aspect.h | 1 | ||||
-rw-r--r-- | src/core/hle/kernel/service_thread.cpp | 3 | ||||
-rw-r--r-- | src/core/memory.cpp | 2 | ||||
-rw-r--r-- | src/video_core/engines/draw_manager.cpp | 2 |
6 files changed, 18 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index cd59e7485..16f31b3a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,8 @@ option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON) +CMAKE_DEPENDENT_OPTION(YUZU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF) + if (YUZU_USE_BUNDLED_VCPKG) if (YUZU_TESTS) list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests") @@ -579,6 +581,21 @@ if (MSVC AND CMAKE_GENERATOR STREQUAL "Ninja") ) endif() +if (YUZU_USE_FASTER_LD AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # We will assume that if the compiler is GCC, it will attempt to use ld.bfd by default. + # Try to pick a faster linker. + find_program(LLD lld) + find_program(MOLD mold) + + if (MOLD AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12.1") + message(NOTICE "Selecting mold as linker") + add_link_options("-fuse-ld=mold") + elseif (LLD) + message(NOTICE "Selecting lld as linker") + add_link_options("-fuse-ld=lld") + endif() +endif() + enable_testing() add_subdirectory(externals) add_subdirectory(src) diff --git a/src/audio_core/renderer/performance/detail_aspect.h b/src/audio_core/renderer/performance/detail_aspect.h index ee4ac2f76..736c331b9 100644 --- a/src/audio_core/renderer/performance/detail_aspect.h +++ b/src/audio_core/renderer/performance/detail_aspect.h @@ -16,7 +16,6 @@ class CommandGenerator; */ class DetailAspect { public: - DetailAspect() = default; DetailAspect(CommandGenerator& command_generator, PerformanceEntryType entry_type, s32 node_id, PerformanceDetailType detail_type); diff --git a/src/audio_core/renderer/performance/entry_aspect.h b/src/audio_core/renderer/performance/entry_aspect.h index 01c1eb3f1..14c9e3baf 100644 --- a/src/audio_core/renderer/performance/entry_aspect.h +++ b/src/audio_core/renderer/performance/entry_aspect.h @@ -16,7 +16,6 @@ class CommandGenerator; */ class EntryAspect { public: - EntryAspect() = default; EntryAspect(CommandGenerator& command_generator, PerformanceEntryType type, s32 node_id); /// Command generator the command will be generated into diff --git a/src/core/hle/kernel/service_thread.cpp b/src/core/hle/kernel/service_thread.cpp index e72c3d35d..38afa720b 100644 --- a/src/core/hle/kernel/service_thread.cpp +++ b/src/core/hle/kernel/service_thread.cpp @@ -163,9 +163,6 @@ ServiceThread::Impl::~Impl() { m_wakeup_event->Signal(); m_host_thread.join(); - // Lock mutex. - m_session_mutex.lock(); - // Close all remaining sessions. for (const auto& [server_session, manager] : m_sessions) { server_session->Close(); diff --git a/src/core/memory.cpp b/src/core/memory.cpp index 3141122f1..b3f50223b 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp @@ -195,13 +195,11 @@ struct Memory::Impl { break; } case Common::PageType::Memory: { - DEBUG_ASSERT(pointer); u8* mem_ptr = pointer + page_offset + (page_index << YUZU_PAGEBITS); on_memory(copy_amount, mem_ptr); break; } case Common::PageType::DebugMemory: { - DEBUG_ASSERT(pointer); u8* const mem_ptr{GetPointerFromDebugMemory(current_vaddr)}; on_memory(copy_amount, mem_ptr); break; diff --git a/src/video_core/engines/draw_manager.cpp b/src/video_core/engines/draw_manager.cpp index c59524e58..b213c374f 100644 --- a/src/video_core/engines/draw_manager.cpp +++ b/src/video_core/engines/draw_manager.cpp @@ -180,7 +180,7 @@ void DrawManager::ProcessTopologyOverride() { } void DrawManager::ProcessDraw(bool draw_indexed, u32 instance_count) { - LOG_TRACE(HW_GPU, "called, topology={}, count={}", draw_state.topology.Value(), + LOG_TRACE(HW_GPU, "called, topology={}, count={}", draw_state.topology, draw_indexed ? draw_state.index_buffer.count : draw_state.vertex_buffer.count); ProcessTopologyOverride(); |